<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="UTF-8">
    <title>Sucha's Blog - Archive for March, 2013</title>
    <meta name="generator" content="MarkdownProjectCompositor.lua">
    <meta name="author" content="Sucha">
    <meta name="keywords" content="suchang, programming, Linux, Lua">
    <meta name="description" content="Sucha's blog">
    <link rel="shortcut icon" href="../images/ico.png">
    <link rel="stylesheet" type="text/css" href="../styles/blog.css">
    <link rel="stylesheet" type="text/css" href="../styles/prism.min.css">
    <style id="site_theme"></style>
  </head>
  <body>
    <div id="body">
      <div id="text">
	   <!-- Page published by cmark-gfm begins here --><h1>Sucha's Blog ~ Archive for March, 2013</h1>
<p><a id="p0"></a></p>
<div class="date">13年3月26日 周二 21:19</div>
<h2>吐槽一下 iOS 的 NSMutableURLRequest 和 cookie 方案</h2>
<p>最近忙一款 iOS app，需要用到网络连接，其实 iOS 上用于网络开发的库已经不
少了，不过对于我的需求来说还是太复杂，况且自己又是一个那么喜欢折腾的人，
就从简单的入手吧，百度上搜到的就是 NSMutableURLRequest。</p>
<p>不凑巧我需要登陆网站，就自己折腾了 cookie 来玩玩，问题是系统在遇到 http
重定向的时候就帮你转过去了，恰巧登入网站的 cookie 就在那个网页中，根本没
法自己处理，没办法了，只好打开系统的 cookie 处理规则。</p>
<p>这个是我纯折腾的，以上也就算了，但是遇到保存 cookie 用于下次登陆的时候，
也要说一说。</p>
<p>话说使用 NSHTTPCookieStorage 的 cookies 方法得到的是一个 NSArray，不过内
部的 object 却是 NSHTTPCookie，不算是基本类型，所以是无法通过 NSArray 的
writeToFile 写到文件里面去的。</p>
<p>但是可以通过导出 NSHTTPCookie 的 properties 来得到 NSDictionary，然后
arrayByAddingObject 到一个新建的 NSArray 里面然后就可以保存了……</p>
<p>我是有多懒，但系统有提供基本数据的持久化方案干嘛不用呢。</p>
<p>读取的时候的到了一个 NSDictionary 的 NSArray，将其一个个 setCookie 就好
了。</p>
<p>话说保存 cookie 登陆网站确实有用。</p>
<div class="category"><a href="CategoryProgramming.html">CategoryProgramming</a> / <a href="2013-03.html#p0">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<!-- date: 2013-03-26T21:19:31+0800 -->
<!-- Page published by cmark-gfm ends here -->
  <div id="foot">2004-<script>var d = new
	Date();document.write(d.getFullYear())</script> &copy;
	Sucha. Powered by MarkdownProjectCompositor.
  </div>
  </div><!-- text -->
  <div id="sidebar">
  </div><!-- sidebar -->
  <script src="../js/prism.min.js" async="async"></script>
  <script src="../js/blog_sidebar.js"></script>
  </div> <!-- body -->
</body>
</html>